package com.xiaoma.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.google.common.util.concurrent.RateLimiter;

/**
 * guava 限流
 * @author xiaomacdut
 * @date 2020年3月17日 下午12:58:15
 */
@RestController
public class RatelimiterController{
    
    // 每秒生成的令牌数
    RateLimiter rateLimiter = RateLimiter.create(2.0);
    
    
    @RequestMapping("/access")
    public String access(){
        // 尝试获取令牌
        if(rateLimiter.tryAcquire()){
            // 模拟业务执行500毫秒
            try{
                Thread.sleep(500);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
            return "aceess success ";
        }else{
            return "aceess limit ]";
        }
    }
}
